23

» WarCraft 3 / Проблема с моделью

Похожие вопросы:

ответ
Свершылось... Заработало...
Вот оно.

Описание проверки:
  • проверил в редакторе, он просто вылетает при попытке настройки в РО;
  • переконвертировал в .mdl и осмотрел, все норм;
  • открыл в War3ModelEditore, удалил лишние текстуры, материалы, настроил анимации геосетов;
  • профит.
Если кто не верит, вот скрин.
ответ
У модельки нет анимации смерти - удаляй юнит- Боевая единица А unit dies(умирает) - remove dying unit from the game
ответ
тему можно закрывать. ответ сам нашел.
ответ
советую переименовать модель\заребутить комп
текстуры стандартные юзал, я так понимаю

23

» WarCraft 3 / Ошибка в коде

Похожие вопросы:

ответ
низнаю какой спел у героя перезаряжается, на какой хватает маны, какие спелы у героя вообще есть, и в прочем на основе каких спелов они сделаны
да здравствует бд
FenikS1991:
Я знаю что это координаты умник.. пустые придирки не прокатят
я не только про координаты, я про всё
короче судя по всему ты пытаешься написать прогу которая бы думала вместо тебя
и это очень пичально
поэтому я просто оставлю это здесь
ответ
нет
no
ответ
FenikS1991, убери стоимость в 15 маны.
ответ
Не boolean а booexpr - это фильтр для группы, там никакие локалка не нужны.
Саму группу можно перебирать в цикле что правда дает шанс попасть в лимит операций и грохнуть поток.
Делать нужно примерно вот так :
function OnlyEnemyGroundAlive takes nothing returns boolean
    return GetUnitState( GetFilterUnit(), UNIT_STATE_LIFE )> 0.405 and IsUnitEnemy( GetFilterUnit(), bj_groupEnumOwningPlayer ) and IsUnitType( GetFilterUnit(), UNIT_TYPE_GROUND )
endfunction

function DamageEnemy takes nothing returns nothing
    call UnitDamageTarget( bj_lastReplacedUnit, GetEnumUnit(), 100.00, false, false, ATTACK_TYPE_NORMAL,  DAMAGE_TYPE_COLD, WEAPON_TYPE_WHOKNOWS )
endfunction

function Temp takes nothing returns nothing
    local group grp = CreateGroup( ) //создаём группу юнитов
    local real dx = 0.00   // координата x 
    local real dy = 0.00   // координата y
    
    set bj_groupEnumOwningPlayer == Player(0) // глобальная переменная чтобы передать данные в фильтр
    call GroupEnumUnitsInRange( grp, dx, dy, 512.00, Condition( function OnlyEnemyGroundAlive) )
    set bj_lastReplacedUnit = GetTriggerUnit( )// глобальная переменная чтобы передать данные в другую функцию.
    call ForGroup( grp, function DamageEnemy )
    
    call DestroyGroup( grp )
    
    set grp = null
endfunction
1 строчка бывает только у гуишников.
ответ
проверь настройки A01P, возможно, там кривые данные выше 3-го уровня

23

» WarCraft 3 / Высота

Похожие вопросы:

ответ
Высота и скорость набора высоты в секунду. Не работает на наземных, чтобы заработало на нелетающих им нужно вручить и сразу же удалить способность 'Amrf' (Превратится в ворона).
Хоспади в оглавлении статей все это есть, откуда вы на нашу голову рухнули?
ответ
Просто заставлять, ходить туда-сюда + убрать карту путей, чтобы им никто не мешал ходить.
ответ
Можно запоминать все деформации и потом вызывать их заново, но с отрицательной амплитудой чтобы они гасили предыдущие.
С одной вроде работает, но надо будет заносить их в массивы и т.д.
ответ
нет, но можно сделать так что при премещении не сбрасывалась высота, только сегодня узнал) во вкладке дополнительно последний пункт

23

» WarCraft 3 / Ядовитое облако

Похожие вопросы:

ответ
Diazon, можно даже проще сделать.
Создать способность на базе, к примеру, повышения защиты для предмета. Сделать +0 брони.
В триггере сделать так:
Событие : юнит атакован
Условие : на юните висит чума
Действие : проверить, если нет способности +0 брони, то дать эту способность
И при смерти проверять имеет ли этот юнит способность +0 брони. Если да- то забрать её и создать труп.

23

» WarCraft 3 / Анимация юнита

Похожие вопросы:

ответ
AddUnitAnimationProperties(u,null,true)
SetUnitAnimationByIndex(u,8)
1 это прописываешь там де обьявляешь переменные после обьявления юнита
2 это прописываешь когда те анимация нужна поэкспериментируй от 0 до 30

а чтобы поднять это дело в воздух
UnitAddAbility(u, 'Arav')
UnitRemoveAbility(u,'Arav')
SetUnitFlyHeight(u,150,0)
ответ
gabriel_fisher, скорее всего, тебе нужны анимационные теги
теги бывают разные: alternate, gold, lumber, defend, flesh и др
например, у рабочего есть анимации attack, walk, death и если ему добавить тег lumber, тогда вместо этих анимаций будут проигрываться attack lumber, walk lumber и death lumber соответственно.
Теги можно добавлять/убирать тригерно
Анимация - Add/Remove Animation Tag
или с помощью jass
native AddUnitAnimationProperties takes unit whichUnit, string animProperties, boolean add returns nothing
Также теги можно добавлять в Редакторе Объектов
Графика - Нужная анимация
ответ
Suite, вот только придётся каждый раз вручную юзать этот спелл
SсRealm, ты вопрос прочти прежде чем писать всякий бред
нормальным способом момент добычи отловить нельзя
недавно кидали костыль позволяющий отловить удар по дереву но он тут не особо поможет
ибо анимации будут перебивать друг друга
в общем как и сказал Suite меняй это в самой модели
ответ
Переименуй анимацию в модели в например Stand Alternate и 1) и добавляй соответствующий тег или 2) проигрывай анимацию по индексу.

23

» WarCraft 3 / звук и утечка

Похожие вопросы:

ответ
Obelick, эта либо не трогает мультибоарды
она по точкам(location) в основном работает
Obelick:
учить ради них джас и переписывать мне настолько лень
если ты нормально знаешь гуи и имеешь базовые знания по использованию гугл переводчика то переписать мультибоард на jass много времени не займёт
кроме того тебе не обязательно переписывать полностью
можно сконвертировать в код и поправить то что вызывает утечки
если ты говоришь об утечках в функции установки значения ячейки мультибоарда то их можно убрать следующим кодом
define MultiboardSetItemValueBJ(mb,col,row,val)=myMultiboardSetItemValue(mb,col,row,val)

void myMultiboardSetItemValue(multiboard mb, integer col, integer row, string val){
    multiboarditem mbitem = MultiboardGetItem(mb, row-1, col-1)
    MultiboardSetItemValue(mbitem, val)
    MultiboardReleaseItem(mbitem)
    mbitem=null
}
вставь его в шапку карты (туда где ты ALL.j подключал)
правда после этого автозаполнение строк/столбцов перестанет работать и придётся делать его циклом
ответ
еще раз - лучше скачать handle counter и посмотреть его показания, сколько объектов создается при касте
стремление сделать все безутечно похвально, но все хорошо в меру

23

» WarCraft 3 / Открытие карт

Похожие вопросы:

ответ
Ilya48, какой скриншот?
Значит, карта под защитой.
ответ
Карта запротекчена.
ответ
JNGP добавляет в РО скрытые модельки/иконки, а FNWE заменяет файлы, где указаны имена этих файлов.
Перенеси этот файл в папку UI с заменой.
ответ
Ну если она пустая, то ничего, а если там есть более "старые" версии твоей карты, ищи исправную и пользуйся
ответ
Очень странный вопрос, мб запустить? При открытии карты в редакторе вы никаких роликов не увидите.
А так что вам мешает начинать ролик при старте? Событие инициализация или время прошло 0.00 сек. Как делать ролики смотрите в дефолтных картах близзардов.

23

» WarCraft 3 / Не открывается карта

Похожие вопросы:

ответ
Я не уверен, но возможно функция DestroyTrigger есть в JNGP 5d exp.2, но нет в JNGP твоего друга? Пусть он попробует открыть карту в JNGP 5d exp.2.
ответ
Варианта два - допротектили карту либо у тебя преаддоненый варик. Чаще встречается первое.
ответ
~16GB:
Вот содержимое карты
ответ
во первых: не надо дублировать вопросы
во вторых: у меня твоя карта открывается
правда я не настолько сумасшедший чтобы юзать вин10
в третьих: размер мапы большой и может тупо не хватать памяти (особенно если юзаешь вин10)
советую попробовать переустановить jngp
если не поможет то сменить винду

23

» WarCraft 3 / Радиус постройки

Похожие вопросы:

ответ
SomeFire, У него 3 круга
вернее 6
ответ
Diazon, прочти статьи по массивам/структурам
после чего юзай двухмерные массивы/поля-массивы

23

» WarCraft 3 / jass if внутри loop

Похожие вопросы:

ответ
Существует лимит то ли на кол-во операций, то ли на время выполнения, то ли и на то и на другое. При превышении лимита поток молча рубится.
В качестве шаманства: попробуй завернуть каждый цикл в отдельную функцию. Врядли это поможет само по себе, но зато потом проще будет переходить к следующему шагу - разнесению на отдельные потоки.

23

» WarCraft 3 / For

Похожие вопросы:

ответ
а зачем там вейт?
Возможно ты сделал ещё способностей с Integer A, ведь это одна bj переменная, а за ту одну секунду вейта она может перезаписываться остальными триггерами с использованием for Integer A. Используй джасс©
ответ
Fandalf, just to watch is resources on the site. I've already found the berserk, and smthing that looks similar to Daemon of Chaos Bloodthirste
Well that's all I could find. Your welcome :)
ответ
Есть где-то статья, не помню где, если найду скину. Так вот, там все подробно описано, и даже написаны программы которые нужны для конвертации.
ответ
Tapper, не ,не помогает.
Если ты конечно про
//! nocjass

//! endnocjass
В общем, такая проблема возникает только на JNGP Requiem.
ответ
biridius:
if GetLocalPlayer() == Player(p) { a = 0 }
т.е. текст невидим для нужного игрока? 0 альфы это же 100% прозрачность
а текст неверный потому что накладывается мб от разных игроков
хз насчет альфы
дело в том, что когда ты выводишь текст напрямую в дебаг сообщение на экран в функции C2S, там все нормально, а когда из функции с тексттагом, он уже продублирован
либо я невнимательно где то посмотрел, либо лыжи не едут
если вывести сообщения в конце C2S, получим все нормально,
			msg(HText[1][p]+" " + I2S(p))
            msg(HText[2][p]+" " + I2S(p))
            msg(HText[3][p]+" " + I2S(p))
покажет
"щпаовапа 0"
"0"
"0"
если так же вывести сообщения в функции с тексттагом, то уже получится
"щпаовапа 0"
"щпаовапа 0"
"0"
upd
проблема была с массивами, были массивы HText[12][9], изменил на HText[12][10] и все стало нормально

23

» WarCraft 3 / Десинхронизация

Похожие вопросы:

ответ
нет
это конверт из гуи?
ответ
Claw, SomeFire, Timoxxx, а теперь фокус
у него были гет локал плеер
я их убрал
но он карту после этого не тестил
говорит потестит после нового года
ответ
Решения не было найдено! Самый верный способ сделать свою систему улучшений для юнитов, разбивая их на группы по признаку кол-ва грани у кости и кол-во костей, и в зависимости от этого повышать урон
ответ
и всё это в одной функции

23

» WarCraft 3 / jass локальные переменные

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
скрин ошибки со строкой на которую ругается
а сори, плохо прочитал код
Tobi123 дело говорит
ты даже не знаешь что такое локальные переменные
короче в статьи и не вылазь от туда пока не узнаешь
ответ
массивы или хэш
один фиг
только массивы быстрее
массивы надо знать обязательно
они используются не только в программировании но и в математике и физике
та же хэш таблица построена на основе массива
ответ
koloff, только что проверил, если нет анимации death у эффекта, то он исчезает спустя несколько секунд после вызова функции DestroyEffect
ответ
Ну так то темповые глобалки и структуры vjass'а юзают уже хрен знает сколько лет, ибо да это побыстрее, тут даже вопрос не в памяти а в том что создание переменной это отельная операция как и обнуления, что ненужно делать с глобалками (их порой даже создавать ненужно, ибо bj глобалки сделали близзард) но нужно действовать осторожно, думать головой, не вызывая иных событий где будут юзатся эти же переменные.

23

» WarCraft 3 / Поверхности в MdlVis

Похожие вопросы:

ответ
Ошибка при работе с MdlVis. Попробуй открыть модель в версии 1.40, там должно изменение видимости в ключевых кадрах должно заработать. Однако советую сделать копию модели, т.к. 1.40, если не изменяет память, ломает уже настроенную видимость.
ответ
блин надо было просто перезапустить редактор помогло

23

» WarCraft 3 / Способности

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
Результат бонуса хп Кешируется, поэтом несмотря на уровень абилка всегда дает хп 1 уровня, а вот при ее удалении движок уберет юниту столько хп сколько указано в текущем уровне сплсобности, таким образом мы можем изменять хп юниту. Абилка в 2 лв,на первом уровне бонус маны иди хп 0, на втором обратный тому что М в хотим получить, к примеру если мы хотим получить 150 хп то пишем -150. Вручаем юниту абилку, ставим 2 уровень и тут же удаляем, движок добавит юниту 150 хп.
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.
ответ
не вздумай следовать этому совету, лол. игра может только 4 абилки в предмете разместить.
бери книгу заклинаний, клади туда че хочешь. её и добавляй. если нужна активка на предмете, то добавляй её дважды, чтобы было так:
активка
книга
активка
и все будет
ответ
В РО, такое невозможно сделать. Подробно на триггерах? Ну вот пример, а если нужно ещё подробнее, то учебник по Jass в руки.
На проклятие в РО,или любой другой спелл,ставится минимальная дистанция
function Trig_Spell_Actions takes nothing returns nothing
local location loc = Location(GetWidgetX(GetSpellAbilityUnit()),GetWidgetY(GetSpellAbilityUnit()))
local unit u = null
if GetSpellAbilityId() == 'АЙ ДИ СКИЛЛА' then
set u = CreateUnitAtLoc(GetOwningPlayer(GetSpellAbilityUnit()),'АЙ ДИ ДАММИ ЮНИТА-ЭФФЕКТА',loc,0.00)
call IssueTargetOrder(u,"curse",GetSpellTargetUnit())
endif
call RemoveLocation(loc)
set loc = null
endfunction

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
    local integer i = 0
    set gg_trg_Spell = CreateTrigger()
    loop 
    exitwhen i > 12
        call TriggerRegisterPlayerUnitEvent(gg_trg_Spell, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
    set i = i + 1
    endloop
    call TriggerAddAction( gg_trg_Spell , function Trig_Spell_Actions )
endfunction
Потом тоже самое, только отследить каст проклятия, проверить тип юнита и удалить его из игры.

23

» WarCraft 3 / Помогите вспомнить название карты

Похожие вопросы:

ответ
Все нашел!
Ошибся, вот она, которую я имел ввиду, версия мапы оказалось 3.6 100% она.
ответ
8gabriel8, точно. Их там нет. Я перепутал. Не в константах, а в интерфейсе.
Текст - Общий - Жульничество разрешено
ответ
закрыт по таймауту

23

» WarCraft 3 / Модель стены

Похожие вопросы:

ответ
В редакторе моделей для Вара необходимо создавать точки крепления огня (кости). Они называются sprite.
Цитирую фразу из статьи: Точки крепления и Событийные объекты.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.
ответ
RedLegion:
dave_wwid:
Есть статья в базе
Basile2:
Текстуру перерисуй и будет счастье
Не силён в таких делах. Хотелось просто и без гемора найти модель. Видел на картах есть такие, но увы они запротекчены.
Открой прогой mpq editor
ответ
Уважаемый пользователь! Спешу вас предупредить что есть такая вещь как поиск, вот за 5 минут на сайте нашол:
Если еще немного покопатса на сайте в разделе декораций - можно нагрести кучу добра!
И вобще мой вам совет - научитесь минимальному моделингу: сможете клепать такие вещи за 3 минуты на коленке с необходимым вам видом, формой и текстурой.

23

» WarCraft 3 / Видимость

Похожие вопросы:

ответ
при смерти юнита обзор вокруг него постепенно уменьшается
это своеобразный модификатор для обзора
он после этого сбрасывается на нормальное значение, но только если не помешать ему
воскрешение юнита - вмешивается в этот процесс
баг обходится быстрым сбросом вижена (дать -99999, и отнять... или наоборот... сейчас поищу описание)
. . .
В общем, я не нашёл точного решения, а тестить какое из них здесь точнее подойдёт - нет времени.
Вариант А - при воскрешении дать на 0.00 (или 0.01) сек абилку на +99999 ренжа обзора и забрать
Вариант Б - сделать то же самое, но на -9999 ренжа
Там есть манипуляции с 0.4 реал-тайма для перерасчёта видимых тайлов игроку, и это должно вроде как дать рывок в нормализации зрения героя...
Если не поможет - резко смени время суток (+12 часов), и потом обратно (ещё +12 часов), может помочь
Нужен ли тут временной промежуток в 0.00 или 0.01 сек - не знаю, проверь сам
ответ
A.W.K.:
Ой все, я просто поставил "облегченная модель". А она только у деревьев facepalm
ответ
Ознакомились с правилами сайта и создали вопросы отдельно
ответ
~8gabriel8:
Как-то щёлкнул галку просто в параметрах карты, что скрытые области частично видимы)

23

» WarCraft 3 / Загрузочный экран

Похожие вопросы:

ответ
Можно! Но всё будет зависить от того какую рассу выбрал игрок при старте. И запихиваешь свои 5 лаодскринов в карту.
ответ
Я ж те писал. Поле описания карты оставляешь пустым. Всё описание вставляешь в картинку загрузочного экрана
Но надо что бы был текст на загрузочном экране(который настраивается через редактор)
Больше ничего не надо, нет? Текст на картинке делается в 20 секунд. Если бы всё в этом мире делалось через фразу "не хочу"
ответ
Насколько я помню, я использовал разные имена LoadingScreenA.mdx, LoadingScreenB.mdx и т.д. для каждой карты. Естественно и их компоненты переименовывал соответственно - LoadingScreenABL(BR/TL/TR)
ответ
Прелоад по факту стартует только после исполнения загрузки карты. Таким образом штатным способ не сделаешь различные загрузочные экраны.
П.С. Кроме этого ты же прописываешь пути в импорте своих изображений. Несколько загрузочных экранов с одним путем? Врятли
П.С,. и как ты интересно собирался вызвать пролоад до загрузки карты?) Создашь функцию в чате лобби?)))

23

» WarCraft 3 / Портрет модели

Принятый ответ
Похожие вопросы:

ответ
Похоже это две разные, полноценные модели. Портрет - на самом деле модель Ледяного, а не-портрет - Лесного. Не знаю как автор до этого додумался. Портрет сразу вшит в модель.
Просто уберите _Portrait из названия и всё будет работать.
ответ
Возможно, в анимации "birth" в модели этого здания также через пробел написано "portrait". Убери слово "portrait" в анимации "birth" и добавь его в анимации "stand" или создай отдельную анимацию "portrait". Также косяк может быть в самой анимации "portrait", если косяк там, то опять же придётся добавить через пробел слово "portrait" к анимации "stand" или вручную создать новую анимацию "portrait", скопировав ключевые кадры из "stand", чтобы не париться.
ответ
JesusHipster:
Если ты хочешь просто камеру и портрет - импортировать их под одним именем, но второй модели приписать _portrait. Хочешь одной моделью - сделать камеру в camera manager во вкладке окна. Там все интуитивно. Если именно объединить модели, то такой функционал был у одной утилицы с хайва, но нужна еще ручная настройка и это совсем не в модел эдиторе делается. веса от этого не сильно убавится, меш не так много весит обычно как анимации, так что запариваться не советую с этим.
Я импортирую и портрет и модель, Sniper.mdx и Sniper_Portrait.mdx, я их импортирую, но вместо портрета у снайпера случайный ракурс, как и без портрета. Может, кинуть файлы, сам протестишь?
ответ
Не тупи. Сделай трансляцию от ТИПА ЮНИТА, а не от конкретного юнита.

23

» WarCraft 3 / Вопрос по утечкам

Похожие вопросы:

ответ
local real x = GetRandomReal(GetRectMinX(GetPlayableMapRect()), GetRectMaxX(GetPlayableMapRect()))
local real y = GetRandomReal(GetRectMinY(GetPlayableMapRect()), GetRectMaxY(GetPlayableMapRect()))
...
(действия с координатами)
...
Любые действия с локейшном можно переделать под координаты, если не используется z-координата, как сказано выше. Но z-координату используют не только лишь все, мало кто может это делать.
И обнулять ничего не придётся, так как действительное число не утекает.
ответ
интережер это число
а null это объект
число не является объектом
следовательно их нельзя сравнивать/приравнивать
ответ
GF RaiseD:
Я знаю только один способ избавления от утечек - писать код без них.Тебе нужен кто-то знающий игровые скрипты или злосчастный Jass. Иначе уровень неопределённости вопроса не позволит подсказать что-то дельное.
ответ
еще раз - лучше скачать handle counter и посмотреть его показания, сколько объектов создается при касте
стремление сделать все безутечно похвально, но все хорошо в меру